home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d3
/
prowrit.arc
/
PW.PS
< prev
next >
Wrap
Text File
|
1989-03-06
|
12KB
|
419 lines
% Professional Write PostScript prologue file
% version 1.02
% Copyright 1988 Software Publishing Corporation
/PWdict 75 dict def % define the Professional Write dictionary
PWdict begin
/bd {bind def} bind def
/Linefont % recreate IBM's line drawing chars
10 dict dup begin
/FontType 3 def
/FontMatrix [.001 0 0 .001 0 0] def
/FontBBox [0 -300 600 700] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 176 [
/onequarter /onehalf /threequarters
/tb /tbl /tbl2 /t2b2l /b2l /bl2 /t2b2l2 /t2b2 /b2l2 /t2l2 /t2l
/tl2 /bl /tr /trl /rbl /trb /rl /trbl /tr2b /t2rb2 /t2r2 /r2b2
/t2r2l2 /r2b2l2 /t2r2b2 /r2l2 /t2r2b2l2 /tr2l2 /t2rl /r2bl2
/rb2l /t2r /tr2 /r2b /rb2 /t2rb2l /tr2bl2 /tl /rb
/block /bblock /lblock /rblock /tblock
] putinterval
Encoding 32 /space put
Encoding 254 /squarebullet put
/CharDefs 80 dict def CharDefs begin
/.notdef {} def
/lx 0 def
/rx 600 def
/by -300 def
/ty 700 def
/cx 300 def
/cy 350 def
/c1x 245 def
/c2x 355 def
/c1y 295 def
/c2y 405 def
/sqblx 150 def
/sqbrx 450 def
/sqbty 500 def
/sqbby 200 def
/l {gsave lx currentpoint exch pop lineto stroke grestore} bd
/r {gsave rx currentpoint exch pop lineto stroke grestore} bd
/t {gsave currentpoint pop ty lineto stroke grestore} bd
/b {gsave currentpoint pop by lineto stroke grestore} bd
/box {3 index 3 index moveto 3 index 1 index lineto
1 index 1 index lineto 1 index 3 index lineto
closepath fill pop pop pop pop} bd
/tb {cx ty moveto b} bd
/tbl {cx cy moveto t b l} bd
/bl {cx cy moveto b l} bd
/tr {cx cy moveto t r} bd
/trl {cx cy moveto t r l} bd
/rbl {cx cy moveto r b l} bd
/trb {cx cy moveto t r b} bd
/rl {lx cy moveto r} bd
/trbl {cx cy moveto t r b l} bd
/tl {cx cy moveto t l} bd
/rb {cx cy moveto r b} bd
/tbl2 {cx c1y moveto t b l cx c2y moveto l} bd
/t2b2l {c1x cy moveto t b l c2x ty moveto b} bd
/b2l {c2x cy moveto b l c1x cy moveto b} bd
/bl2 {cx c2y moveto b l cx c1y moveto l} bd
/t2b2l2 {c1x c1y moveto b l c1x c2y moveto t l c2x ty moveto b} bd
/t2b2 {c1x ty moveto b c2x ty moveto b} bd
/b2l2 {c1x c1y moveto b l c2x c2y moveto b l} bd
/t2l2 {c1x c2y moveto t l c2x c1y moveto t l} bd
/t2l {c2x cy moveto t l c1x cy moveto t} bd
/tl2 {cx c1y moveto t l cx c2y moveto l} bd
/tr2b {cx c1y moveto t r b cx c2y moveto r} bd
/t2rb2 {c2x cy moveto t r b c1x ty moveto b} bd
/t2r2 {c1x c1y moveto t r c2x c2y moveto t r} bd
/r2b2 {c1x c2y moveto r b c2x c1y moveto r b} bd
/t2r2l2 {c1x c2y moveto t l c2x c2y moveto t r lx c1y moveto r} bd
/r2b2l2 {lx c2y moveto r c1x c1y moveto b l c2x c1y moveto r b} bd
/t2r2b2 {c2x c2y moveto t r c2x c1y moveto r b c1x ty moveto b} bd
/r2l2 {lx c1y moveto r lx c2y moveto r} bd
/t2r2b2l2 {c1x c1y moveto b l c1x c2y moveto t l c2x c2y moveto t r c2x c1y moveto r b} bd
/tr2l2 {cx c2y moveto t r l lx c1y moveto r} bd
/t2rl {c1x cy moveto t r l c2x cy moveto t} bd
/r2bl2 {lx c2y moveto r cx c1y moveto r b l} bd
/rb2l {c1x cy moveto r b l c2x cy moveto b} bd
/t2r {c1x cy moveto t r c2x cy moveto t} bd
/tr2 {cx c1y moveto t r cx c2y moveto r} bd
/r2b {cx c2y moveto r b cx c1y moveto r} bd
/rb2 {c1x cy moveto r b c2x cy moveto b} bd
/t2rb2l {c1x cy moveto t r b l c2x ty moveto b} bd
/tr2bl2 {cx c1y moveto t r b l lx c2y moveto r} bd
/block {lx by rx ty box} bd
/bblock {lx by rx cy box} bd
/lblock {lx by cx ty box} bd
/rblock {cx by rx ty box} bd
/tblock {lx cy rx ty box} bd
/onequarter {lx by rx ty box} bd
/onehalf {lx by rx ty box} bd
/threequarters {lx by rx ty box} bd
/space {} bd
/squarebullet {sqblx sqbby sqbrx sqbty box} bd
end
/BuildChar
{
20 setlinewidth
600 0 0 -300 600 700 setcachedevice
exch begin
Encoding exch get
CharDefs begin load exec end
end
} bd
/FontInfo 10 dict def FontInfo begin
/Notice (Copyright 1988 Software Publishing Corporation) def
/FullName (Line-Light) def
/FamilyName (Line) def
/Weight (Light) def
/version (001.000) def
/UnderlinePosition -80 def
/UnderlineThickness 40 def
/isFixedPitch true def
/ItalicAngle 0 def
end
end
def
/SPCEncoding 256 array def % access foreign chars
StandardEncoding SPCEncoding copy pop
SPCEncoding 128 [
/Ccedilla /udieresis /eacute /acircumflex /adieresis /agrave /aring
/ccedilla /ecircumflex /edieresis /egrave /idieresis /icircumflex
/igrave /Adieresis /Aring /Eacute /ae /AE /ocircumflex /odieresis /ograve
/ucircumflex /ugrave /ydieresis /Odieresis /Udieresis /cent /sterling
/yen /.notdef /florin /aacute /iacute /oacute /uacute /ntilde /Ntilde
/ordfeminine /ordmasculine /questiondown /.notdef /.notdef /.notdef
/.notdef /exclamdown /guillemotleft /guillemotright
] putinterval
SPCEncoding 20 [/paragraph /section] putinterval
SPCEncoding 225 [/germandbls /dagger /daggerdbl
/quotedblleft /quotedblright] putinterval
/MakeSPCFont % make fonts with foreign chars in 'em
{
FontDirectory 1 index known not FontDirectory 3 index known and
{
exch findfont dup length dict exch
{ 1 index /FID eq
{ pop pop }
{ 1 index /Encoding eq { pop SPCEncoding } if
2 index 3 1 roll put
} ifelse
} forall
definefont pop
}
{pop pop} ifelse
} bd
/cstr 100 string def
/sstr (-SPC) def
/setSPCfonts
{
fonts
{
dup cstr cvs sstr search
{exch pop exch pop cvn exch MakeSPCFont}
{pop pop} ifelse
} forall
} bd
/family 0 def % state variables
/bold false def
/italic false def
/underline false def
/superscript false def
/subscript false def
/sideways false def
/lineheight 12 def
/fontsize 10 def
/linedrawing false def
/dirty false def
/leftmargin 0 def % some useful numbers
/scriptfactor .8 def
/line1 {11 72 mul lineheight sub} bd
/line1sw {8.5 72 mul lineheight sub} bd
/superoffset {fontsize .3 mul} bd
/suboffset {fontsize .25 mul neg} bd
/savestate % be able to save and restore state
{
family bold italic underline superscript subscript
sideways lineheight fontsize linedrawing
manualfeedOK {statusdict begin manualfeed end} if
} bd
/getstate % restoring state, set orientation and font
{
manualfeedOK {statusdict begin /manualfeed exch def end} if
/linedrawing exch def
/fontsize exch def
/lineheight exch def
/sideways exch def
/subscript exch def
/superscript exch def
/underline exch def
/italic exch def
/bold exch def
/family exch def
leftmargin line1 moveto
sideways {612 0 translate 90 rotate leftmargin line1sw moveto} if
setfontnstyle
} bd
/fonts % all fonts accessible from Professional Write
[
/Courier-SPC /Courier-Bold-SPC /Courier-Oblique-SPC /Courier-BoldOblique-SPC
/Times-Roman-SPC /Times-Bold-SPC /Times-Italic-SPC /Times-BoldItalic-SPC
/Helvetica-SPC /Helvetica-Bold-SPC /Helvetica-Oblique-SPC /Helvetica-BoldOblique-SPC
/Helvetica-Narrow-SPC /Helvetica-Narrow-Bold-SPC /Helvetica-Narrow-Oblique-SPC /Helvetica-Narrow-BoldOblique-SPC
/Palatino-Roman-SPC /Palatino-Bold-SPC /Palatino-Italic-SPC /Palatino-BoldItalic-SPC
/AvantGarde-Book-SPC /AvantGarde-Demi-SPC /AvantGarde-BookOblique-SPC /AvantGarde-DemiOblique-SPC
/Bookman-Light-SPC /Bookman-Demi-SPC /Bookman-LightItalic-SPC /Bookman-DemiItalic-SPC
/NewCenturySchlbk-Roman-SPC /NewCenturySchlbk-Bold-SPC /NewCenturySchlbk-Italic-SPC /NewCenturySchlbk-BoldItalic-SPC
/ZapfChancery-MediumItalic-SPC /ZapfChancery-MediumItalic-SPC /ZapfChancery-MediumItalic-SPC /ZapfChancery-MediumItalic-SPC
] def
/fontlength fonts length def % length of fonts array
/bounds % bounds-checking algorithm
{
3 index 3 index lt 4 index 3 index gt or
{ {exch} if pop exch pop}
{pop pop pop} ifelse
} bd
/init % initialization - install fonts, start page 1
{
/Linefont Linefont definefont pop
setSPCfonts startpage setfontnstyle
} bd
% the following routines are called from other routines
% routines include start new page, eject page, set font and style
% (style includes bold, italic, underline, super/subscript, line drawing),
% import graph from HG, draw an underline
/startpage {/s1 save def leftmargin line1 moveto} bd
/endpage {showpage s1 restore} bd
/setfontnstyle
{
linedrawing
{/Linefont findfont [fontsize 0 0 lineheight 0 0] makefont setfont}
{
fonts family 4 mul bold {1 add} if italic {2 add} if
0 fontlength false bounds get
findfont fontsize scalefont
superscript subscript or {scriptfactor scalefont} if
setfont
} ifelse
} bd
/doHGgraph
{
0 currentpoint exch pop lineheight add 792 exch sub neg
currentfile cstr readline pop length
0 66 true bounds {nl} repeat
/s2 save def
/initgraphics {} def
/HGdict 50 dict def HGdict begin
translate {currentfile cvx exec} stopped pop
end
s2 restore
dirty not {/dirty true def} if
} bd
/markdict 1 dict def markdict begin
/cleartomarkdict
{ {currentdict end /cleartomarkdict known {exit} if} loop} bd
end
/showunderline
{
dup stringwidth pop exch show
gsave markdict begin mark exch
{
currentfont begin
FontMatrix
FontInfo begin
0 UnderlinePosition 2 index transform rmoveto
UnderlineThickness 0 3 -1 roll transform pop setlinewidth
end
end
neg 0 rlineto stroke
} stopped
pop cleartomarkdict cleartomark grestore
} bd
/manualfeedOK
markdict begin mark
{
statusdict begin
currentdict /manualfeed known
{/manualfeed load type /booleantype eq} {false} ifelse
} stopped cleartomarkdict {cleartomark false} {exch pop} ifelse
def
% these routines are called from the script
% included are turning all enhancements on and off,
% (enhancements are bold, italic, underline, super/subscript, and line drawing)
% horizontal pen movement (absolute and relative), changing font,
% font size, line height, orientation (portrait or landscape),
% showing a string, going to a new line, ejecting a page
/U {/underline true def} bd
/u {/underline false def} bd
/B {/bold true def setfontnstyle} bd
/b {/bold false def setfontnstyle} bd
/I {/italic true def setfontnstyle} bd
/i {/italic false def setfontnstyle} bd
/SP {/superscript true def setfontnstyle} bd
/sp {/superscript false def setfontnstyle} bd
/SB {/subscript true def setfontnstyle} bd
/sb {/subscript false def setfontnstyle} bd
/F {/family exch def setfontnstyle} bd
/L {/linedrawing true def setfontnstyle} bd
/l {/linedrawing false def setfontnstyle} bd
/M {10.0 div currentpoint exch pop moveto} bd
/MR {10.0 div 0 rmoveto} bd
/ML {10.0 div neg 0 rmoveto} bd
/HG {doHGgraph} bd
/SZ {/fontsize exch def setfontnstyle} bd
/LH {/lineheight exch def} bd
/SW {sideways not {/sideways true def dirty {ff} {fakeff} ifelse} if} bd
/sw {sideways {/sideways false def dirty {ff} {fakeff} ifelse} if} bd
/MF {manualfeedOK {statusdict begin /manualfeed true def end} if} bd
/mf {manualfeedOK {statusdict begin /manualfeed false def end} if} bd
/nl {currentpoint lineheight sub exch pop leftmargin exch moveto} bd
/ff {savestate endpage startpage getstate} bd
/fakeff {savestate s1 restore startpage getstate} bd % ff without the showpage
/s
{
superscript {0 superoffset rmoveto} if
subscript {0 suboffset rmoveto} if
underline {showunderline} {show} ifelse
superscript {0 superoffset neg rmoveto} if
subscript {0 suboffset neg rmoveto} if
dirty not {/dirty true def} if
} bd
end